The majority of presently available data processing units use microprogramming. In microprogramming, tasks which are to be performed are divided into microprograms. Microprograms are formed by a number of microinstructions, which are generally stored in a control memory of a control unit of a data processing system. A logic instruction of a microprogrammed data processing unit commonly employs several microinstructions. All of the microprograms constitute what is generally referred to as the micrologic of the processing unit. The micrologic of the processing unit cooperates with the hardware of the processing unit, as well as with the overall logic of the processing unit. The micrologic is generally written in a read-only memory of a central processing unit of the data processing system. The micrologic may also be written in a read-write section of a central memory of the data processing unit. The read-write section of the central unit of the data processing system where the micrologic is written is usually capable of being reconfigured.
A typical prior art system in which microprogram segments are defined by different base addresses and are located in a central memory of a data processing unit is described in commonly assigned French Patent No. 2,221,052, filed in France Mar. 6, 1973.
The different microprograms are arranged in functional blocks or modules defined by segments of microprograms. The microprograms stored in a read-write memory of the processing unit should remain inaccessible to the logic. Calls to the microprograms, in particular calls to the microprogram segments, are made in response to signals indicative of addresses for the base of the segments, as described in the previously mentioned patent. The base address is generally loaded into a register as a microprogram segment is called up from the memory where it is stored. The actual address of the microinstruction which is being sought within a microprogram segment is derived by adding a signal indicative of a base of a memory section containing the microinstruction to a signal indicative of an address within the memory section where the sought microinstruction is located. The address of the microinstruction address is relative to an address for the base of the memory segment containing the microinstruction.
The prior art systems for addressing program segments have the disadvantage of requiring an instruction that originates from logic circuitry for each base change. This type of device and operation are disadvantageous because it requires costly computer time. Furthermore, if a first microprogram is interrupted by a second microprogram having a base different from the first microprogram, the prior art addressing devices do not safeguard the contents of a register storing a signal corresponding to the base of the memory segment where the first microprogram is located. Thus, there is a possibility, in such an instance, for the base of the first microprogram to be lost so that the first microprogram is not properly entered. Finally, no prior art device of which I have knowledge is able to change microprograms simply and rapidly enough to permit very rapid modifications of an operational mode of the processing unit responsive to the microprograms. In modern data processing units, one such exemplary operational mode change involves changing the operation of the system from one machine to another machine.
It is, accordingly, an object of the present invention to provide a new and improved device for controlling microinstructions stored in a data processing unit memory.
Another object of the present invention is to provide a new and improved device for controlling microinstructions in a data processing unit memory such that there is rapid addressing of microinstructions grouped into microprogram segments starting from a base address of the segments.
Another object of the invention is to provide a new and improved apparatus for facilitating restarting of interrupted microprogram segments.
Still another object of the invention is to provide a new and improved apparatus for facilitating selection of microprograms.
A further object of the invention is to provide a new and improved apparatus for facilitating selection of microprogram segments.
Yet another object of the invention is to provide a new and improved apparatus for facilitating changes in the operational mode of a data processing unit.